The present invention relates to a computer system for automatically generating and sending messages to recipients in response to events when specified conditions are met.
People working in organizations often need to know and/or track events relevant to their specific duties and responsibilities within their organizations. In addition, people often need or desire to know and/or track events relevant to their personal lives. Therefore, the need to automatically generate and deliver messages in response to events that meet a prescribed set of conditions is well known.
Current methods for automatically generating messages require a simple (i.e., direct) relationship between the event and the recipient of the message. For example, an investor can instruct an online trading system to send a page or an e-mail xe2x80x9cwhen the stock price of XYZ reaches 50xe2x80x9d. As another example, a mainframe supervisory operator can instruct an automated paging system to page the operator if the mainframe computer goes down. As a further example, a consumer can instruct an electronic-commerce website to send an e-mail notifying her when a sweater in her size is in stock. It is not straightforward, however, for an automated process to generate messages where a complex or indirect relationship exists, such as an instruction to xe2x80x9ctell me when the stock price of any company that is owned by a company in which my brother has stock reaches 50xe2x80x9d, or xe2x80x9cpage me if a mainframe computer in a building managed by Jones goes downxe2x80x9d, or xe2x80x9ce-mail me when a sweater in one of my children""s sizes is in stockxe2x80x9d.
A more detailed example of the requirement to automatically generate and deliver messages in response to events is the field of asset management. All organizations, large and small, manage the assets they own or control. Some organizations track their assets to calculate the property, plant and equipment figures for their balance sheets. Other organizations, such as hospitals, track the use of their assets in order to allocate costs associated with those assets to a separate entity (e.g., insurance companies, Medicare). Still other organizations, including many government contractors, universities and research laboratories, use assets purchased as part of their contracts with the government and so must track those assets using strict accountability requirements that typically accompany these contracts.
A simple approach to asset management is to have a database of assets. A typical record in an asset database would include a unique asset identifier, such as an asset number, an asset description and a location within the organization where the asset is deployed. The asset database must be kept up to date as assets are acquired, disposed of, or moved from location to location. A centralized approach to asset management entails having a central group of asset managers track the assets and update the asset database for all work groups within the organization. However, this can add considerable overhead to the process of managing assets, since an asset manager would need to be called in and take some action for each acquisition, disposal, or movement of an asset from one location to another. If the organization is large, there may be many asset managers. An individual desiring to move an asset from one end of a building to another might find it difficult to identify the correct asset manager to inform of the move.
Another approach is to decentralize the asset management process so that each work group within the organization is responsible for tracking its own assets and making the appropriate updates to the database. While decentralization does make some administrative processes easier, it can make asset management and reporting more difficult from the perspective of the overall organization. Consequently, decentralization might not be acceptable to some organizations that require strict control over their assets.
This shows the need exists in both centralized and decentralized asset management to automatically generate messages in response to changes (which are events) recorded in an asset database. This is also illustrative of the more general requirement for the automated generation of messages in response to events in any circumstance.
Computer systems that generate e-mail messages in response to the recordation of events in a database exist in the prior art. However, these systems are not capable of generating a message when an indirect relationship exists between the event and the message recipient. These systems are also not typically capable of generating messages for a plurality of delivery mechanisms, i.e., they generate messages for delivery by e-mail only.
As used herein, the term xe2x80x9cdatabasexe2x80x9d generally refers to collections of data organized into structured forms. Some well-known database forms include hierarchical, or tree, structures, relational data structures, network structures, and graph structures.
The data in a database is typically organized to permit easy retrieval of information. Databases are typically used to provide multiple users with access to information in a variety of formats. A database may be implemented on a variety of computer platforms (e.g., personal computer, minicomputer, mainframe computer) and operating systems (e.g., Windows, Macintosh, VMS, OS/390). In some uses of the term xe2x80x9cdatabasexe2x80x9d, the database includes a database engine. A database engine provides an interface for users or programs to access (e.g., read, write, modify) data in the database. For example, an SQL (Structured Query Language) database system might integrate a database and a database engine so that a user or program need not fully understand the details of the database, but need only be able to formulate SQL statements and present those statements to the database system. A database engine can be implemented in dedicated hardware, be embodied in software executed by a general-purpose computer, or be some combination of those.
As used herein, the term xe2x80x9cmessagexe2x80x9d refers to data that forms a communication from one or more sources to one or more recipients. A source or recipient is that which has the capability to generate or receive, respectively, a message, and includes an individual, entity, process or location. The capability to generate or receive messages may be provided through any conventional device or technology including Internet appliances, personal digital assistants, pagers, phones, fax machines and computers.
The term xe2x80x9ce-mailxe2x80x9d generally refers to a utility for communicating messages over a network between e-mail xe2x80x9cboxesxe2x80x9d that are each associated with a source and/or recipient. Typically, an e-mail message is a xe2x80x9cstore-and-forwardxe2x80x9d message, which allows a recipient to receive a message even if the recipient is not connected to the network when the message is sent. With a store-and-forward system, a message travels from the source to the recipient along a path and where the path is temporarily blocked, as would be the case if the device that connects the recipient to the network is temporarily off-line, the message is held and delivered the next time the intended recipient connects to the network.
The term xe2x80x9cFAXxe2x80x9d generally refers to a utility for communicating messages that are transmitted in a nonreal-time fashion (such as store-and-forward) where the messages are formatted as telephonically transmittable data that is delivered to a device capable of decoding the data and displaying or storing it in a plurality of formats, such as a printed page, a file on a computer""s hard drive or spoken word.
The term xe2x80x9cvoice mailxe2x80x9d generally refers to a utility for communicating messages that are transmitted in a nonreal-time fashion (such as store-and-forward) where the messages are formatted as audio data representing human or computer-generated speech, preferably in a language understandable to the recipient.
The terms xe2x80x9ctextual pagexe2x80x9d and xe2x80x9cpagexe2x80x9d generally refers to a utility for communicating messages formatted as a signal that triggers a small electronic device called a pager to emit an audible tone or a vibration which alerts the individual in possession of the pager that a message has arrived. A pager typically provides a mechanism capable of displaying the content of the message to the recipient.
The term xe2x80x9cserverxe2x80x9d generally refers to a combination of computer hardware and software that services one or more processes called clients. Clients need not be aware of how the services provided by a server are implemented.
One advantage of some embodiments of an automated messaging system according to the present invention is that messages generated in response to events can be sent to recipients (e.g., individuals, entities, processes, locations) based on chains of relationships that links the events to the recipients.
One such automated messaging system includes an event database, an object database, a relationship database, a message criteria database, a proto-message database, and a recipient address database to generate and deliver a message in response to an event to a recipient. The automated messaging system allows the relationship between an event and a recipient to be direct or indirect, that is, the relationship can be a chain of relationships that link the event to the recipient. The automated messaging system can deliver the generated messages by a plurality of message delivery mechanisms (e.g., e-mail, FAX, voice mail, voice-synthesized telephone message, textual page).
One embodiment of an automated messaging system according to the present invention is an automated asset management system. In this embodiment, assets are tracked in an asset database. Users and connected systems interact with the asset database to keep its contents up to date. These interactions, which are viewed as events by the asset database, are compared against a list of message generation criteria. If a match is found, a relationship database, which links objects to each other in a chain of relationships, is used to determine what objects (e.g., people, business units, external organizations) should be sent a message about the asset or assets affected by the event. Any object in a chain may be a recipient. Each recipient can choose one or more message delivery mechanisms (e.g., e-mail, FAX, voice mail, textual page) by which messages to that recipient may be delivered. The automated messaging system sends a message to each recipient via its chosen message delivery mechanism(s), thereby notifying each recipient of the event.
The asset management system receives changes from an acquisition module, a retirement/disposal module, a management module, an inventory review module and/or an accounting module. The acquisition module records the addition of new assets. The retirement/disposal module records the removal of assets. The management module records, inter alia, changes to an asset""s location, the accountable individual and the accountable work group. The accounting module records the financial transactions that occur for assets.
Other modules might also handle excess assets, inactive assets, assets controlled by agreements, changes based on the physical inventorying of assets, changes based on routine and non-routine maintenance of assets, changes based on the movement of assets by a shipping or material management system, and outputs to reporting systems and accounting systems.
The asset management system, as well as other embodiments of an automated messaging system according to the present invention, can include one computer or a collection of computers, preferably an arrangement that is connected by a network (e.g., an intranet, the Internet) and is scalable to allow many connections with a plurality of nodes. The network may also include other processing elements or equipment (e.g., a printer, a modem, a FAX machine). More generally, an automated messaging system according to the present invention may be embodied in software, hardware or a combination of software and hardware.
In addition to generating and delivering messages relating to the management of assets, an automated messaging system according to the present invention could be used to handle chains of relationships that deal with employment, contract approvals/execution authority, electronic-commerce, etc. In particular, the data structures of or the algorithms used by one or more of the event database, object database, relationship database, message criteria database, proto-message database, and recipient address database could be utilized in an automated system for messaging based on chains of relationships in a wide variety of applications.
A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings.